import TabBar from '@/components/tabBar';
import EventBus from '@/utils/EventBus';
import useToast from '@/utils/toast';
import React, { useEffect } from 'react';
import { Outlet, useNavigate } from 'react-router-dom';

export default function App() {
  const toast = useToast();
  const navigate = useNavigate();
  // 每次访问子路由 都要经过APP这个函数
  // 就在这里进行判断，如果token存在，就放行，否则就阻止，然后跳转登录
  let token = localStorage.getItem('token');
  useEffect(() => {
    if (!token) {
      toast('error', '请先登录');
      setTimeout(() => {
        navigate('/login');
      }, 1500);
    }
    // 创建的方法名称 logintimeout  emit 调用的时候也就调用这个方法
    EventBus.on('logintimeout', () => {
      toast('error', '登录失效');
      // 把token清除掉，重新登录
      localStorage.removeItem('token');
      setTimeout(() => {
        navigate('/login');
      }, 1500);
    });
  }, []);
  return (
    <div>
      <Outlet></Outlet>
      <TabBar></TabBar>
    </div>
  );
}
